using System;
using System.Text;
using System.Collections.Generic;
using THSLib;using THSERP.BaseProvider;

namespace THSERP
{
    public class POSItemsEntity : ERPModuleItemsEntity
    {
        public POSItemsEntity()
        {
        }
        #region Variables
        protected int _bRPOSItemID;
        protected String _aAStatus = DefaultAAStatus;
        protected bool _aAIsCalculated = true;
        protected int _fK_BRPOSID;
        
        protected int _fK_ICDepartmentID;
        protected int _fK_ICProductGroupID;
        protected int _fK_ICProductID;
        protected int _fK_ICProductAttributeID;
        protected int _fK_ICStockID;
        protected int _fK_ICStockSlotID;
        protected String _bRPOSItemProductSerialNo = String.Empty;
        protected String _bRPOSItemProductAttribute = String.Empty;
        protected String _bRPOSItemProductType = String.Empty;
        protected int _bRPOSItemSortOrder;
        protected String _bRPOSItemProductName = String.Empty;
        protected String _bRPOSItemProductDesc = String.Empty;
        protected String _bRPOSItemStatusCombo = String.Empty;
        protected String _bRPOSItemProductSellUnit = String.Empty;
        protected String _bRPOSItemProductBasicUnit = String.Empty;
        protected String _bRPOSItemProductPackagingUnit = String.Empty;
        protected double _bRPOSItemProductSellFactor;
        protected double _bRPOSItemProductPackagingFactor;
        protected double _bRPOSItemProductUnitPrice;
        protected double _bRPOSItemProductInternalUnitPrice;
        protected double _bRPOSItemProductUnitCost;
        protected double _bRPOSItemProductGroupDiscount;
        protected double _bRPOSItemProductDiscount;
        protected double _bRPOSItemProductTaxPercent;
        protected double _bRPOSItemProductQtyOld;
        protected double _bRPOSItemProductQty;
        protected double _bRPOSItemProductBasicQty;
        protected double _bRPOSItemProductPakagingQty;
        protected double _bRPOSItemQty1;
        protected double _bRPOSItemQty2;
        protected double _bRPOSItemQty3;
        protected double _bRPOSItemQty4;
        protected double _bRPOSItemQty5;
        protected double _bRPOSItemQty6;
        protected String _bRPOSItemComment = String.Empty;
        protected double _bRPOSItemUnitVolumn;
        protected double _bRPOSItemUnitWeight;
        protected double _bRPOSItemPrice;
        protected double _bRPOSItemInternalPrice;
        protected double _bRPOSItemTaxAmount;
        protected double _bRPOSItemDiscountAmount;
        protected double _bRPOSItemNetAmount;
        protected double _bRPOSItemTotalAmount;
        protected double _bRPOSItemTotalCost;

        //Extra variables
        protected byte[] _bRPOSItemProductPicture;
        #endregion

        #region Public properties
        public int BRPOSItemID
        {
            get { return _bRPOSItemID; }
            set
            {
                if (value != this._bRPOSItemID)
                {
                    _bRPOSItemID = value;
                    NotifyChanged("BRPOSItemID");
                }
            }
        }
        public String AAStatus
        {
            get { return _aAStatus; }
            set
            {
                if (value != this._aAStatus)
                {
                    _aAStatus = value;
                    NotifyChanged("AAStatus");
                }
            }
        }
        public bool AAIsCalculated
        {
            get { return _aAIsCalculated; }
            set
            {
                if (value != this._aAIsCalculated)
                {
                    _aAIsCalculated = value;
                    NotifyChanged("AAIsCalculated");
                }
            }
        }
       
        public int FK_BRPOSID
        {
            get { return _fK_BRPOSID; }
            set
            {
                if (value != this._fK_BRPOSID)
                {
                    _fK_BRPOSID = value;
                    NotifyChanged("FK_BRPOSID");
                }
            }
        }
        public int FK_ICDepartmentID
        {
            get { return _fK_ICDepartmentID; }
            set
            {
                if (value != this._fK_ICDepartmentID)
                {
                    _fK_ICDepartmentID = value;
                    NotifyChanged("FK_ICDepartmentID");
                }
            }
        }
        public int FK_ICProductGroupID
        {
            get { return _fK_ICProductGroupID; }
            set
            {
                if (value != this._fK_ICProductGroupID)
                {
                    _fK_ICProductGroupID = value;
                    NotifyChanged("FK_ICProductGroupID");
                }
            }
        }
        public int FK_ICProductID
        {
            get { return _fK_ICProductID; }
            set
            {
                if (value != this._fK_ICProductID)
                {
                    _fK_ICProductID = value;
                    NotifyChanged("FK_ICProductID");
                }
            }
        }
        public int FK_ICProductAttributeID
        {
            get { return _fK_ICProductAttributeID; }
            set
            {
                if (value != this._fK_ICProductAttributeID)
                {
                    _fK_ICProductAttributeID = value;
                    NotifyChanged("FK_ICProductAttributeID");
                }
            }
        }
        public int FK_ICStockID
        {
            get { return _fK_ICStockID; }
            set
            {
                if (value != this._fK_ICStockID)
                {
                    _fK_ICStockID = value;
                    NotifyChanged("FK_ICStockID");
                }
            }
        }
        public int FK_ICStockSlotID
        {
            get { return _fK_ICStockSlotID; }
            set
            {
                if (value != this._fK_ICStockSlotID)
                {
                    _fK_ICStockSlotID = value;
                    NotifyChanged("FK_ICStockSlotID");
                }
            }
        }
        public String BRPOSItemProductSerialNo
        {
            get { return _bRPOSItemProductSerialNo; }
            set
            {
                if (value != this._bRPOSItemProductSerialNo)
                {
                    _bRPOSItemProductSerialNo = value;
                    NotifyChanged("BRPOSItemProductSerialNo");
                }
            }
        }
        public String BRPOSItemProductAttribute
        {
            get { return _bRPOSItemProductAttribute; }
            set
            {
                if (value != this._bRPOSItemProductAttribute)
                {
                    _bRPOSItemProductAttribute = value;
                    NotifyChanged("BRPOSItemProductAttribute");
                }
            }
        }
        public String BRPOSItemProductType
        {
            get { return _bRPOSItemProductType; }
            set
            {
                if (value != this._bRPOSItemProductType)
                {
                    _bRPOSItemProductType = value;
                    NotifyChanged("BRPOSItemProductType");
                }
            }
        }
        public int BRPOSItemSortOrder
        {
            get { return _bRPOSItemSortOrder; }
            set
            {
                if (value != this._bRPOSItemSortOrder)
                {
                    _bRPOSItemSortOrder = value;
                    NotifyChanged("BRPOSItemSortOrder");
                }
            }
        }
        public String BRPOSItemProductName
        {
            get { return _bRPOSItemProductName; }
            set
            {
                if (value != this._bRPOSItemProductName)
                {
                    _bRPOSItemProductName = value;
                    NotifyChanged("BRPOSItemProductName");
                }
            }
        }
        public String BRPOSItemProductDesc
        {
            get { return _bRPOSItemProductDesc; }
            set
            {
                if (value != this._bRPOSItemProductDesc)
                {
                    _bRPOSItemProductDesc = value;
                    NotifyChanged("BRPOSItemProductDesc");
                }
            }
        }
        public String BRPOSItemStatusCombo
        {
            get { return _bRPOSItemStatusCombo; }
            set
            {
                if (value != this._bRPOSItemStatusCombo)
                {
                    _bRPOSItemStatusCombo = value;
                    NotifyChanged("BRPOSItemStatusCombo");
                }
            }
        }

        public String BRPOSItemProductSellUnit
        {
            get { return _bRPOSItemProductSellUnit; }
            set
            {
                if (value != this._bRPOSItemProductSellUnit)
                {
                    _bRPOSItemProductSellUnit = value;
                    NotifyChanged("BRPOSItemProductSellUnit");
                }
            }
        }
        public String BRPOSItemProductBasicUnit
        {
            get { return _bRPOSItemProductBasicUnit; }
            set
            {
                if (value != this._bRPOSItemProductBasicUnit)
                {
                    _bRPOSItemProductBasicUnit = value;
                    NotifyChanged("BRPOSItemProductBasicUnit");
                }
            }
        }
        public String BRPOSItemProductPackagingUnit
        {
            get { return _bRPOSItemProductPackagingUnit; }
            set
            {
                if (value != this._bRPOSItemProductPackagingUnit)
                {
                    _bRPOSItemProductPackagingUnit = value;
                    NotifyChanged("BRPOSItemProductPackagingUnit");
                }
            }
        }
        public double BRPOSItemProductSellFactor
        {
            get { return _bRPOSItemProductSellFactor; }
            set
            {
                if (value != this._bRPOSItemProductSellFactor)
                {
                    _bRPOSItemProductSellFactor = value;
                    NotifyChanged("BRPOSItemProductSellFactor");
                }
            }
        }
        public double BRPOSItemProductPackagingFactor
        {
            get { return _bRPOSItemProductPackagingFactor; }
            set
            {
                if (value != this._bRPOSItemProductPackagingFactor)
                {
                    _bRPOSItemProductPackagingFactor = value;
                    NotifyChanged("BRPOSItemProductPackagingFactor");
                }
            }
        }
        public double BRPOSItemProductUnitPrice
        {
            get { return _bRPOSItemProductUnitPrice; }
            set
            {
                if (value != this._bRPOSItemProductUnitPrice)
                {
                    _bRPOSItemProductUnitPrice = value;
                    NotifyChanged("BRPOSItemProductUnitPrice");
                }
            }
        }
        public double BRPOSItemProductInternalUnitPrice
        {
            get { return _bRPOSItemProductInternalUnitPrice; }
            set
            {
                if (value != this._bRPOSItemProductInternalUnitPrice)
                {
                    _bRPOSItemProductInternalUnitPrice = value;
                    NotifyChanged("BRPOSItemProductInternalUnitPrice");
                }
            }
        }
        public double BRPOSItemProductUnitCost
        {
            get { return _bRPOSItemProductUnitCost; }
            set
            {
                if (value != this._bRPOSItemProductUnitCost)
                {
                    _bRPOSItemProductUnitCost = value;
                    NotifyChanged("BRPOSItemProductUnitCost");
                }
            }
        }
        public double BRPOSItemProductGroupDiscount
        {
            get { return _bRPOSItemProductGroupDiscount; }
            set
            {
                if (value != this._bRPOSItemProductGroupDiscount)
                {
                    _bRPOSItemProductGroupDiscount = value;
                    NotifyChanged("BRPOSItemProductGroupDiscount");
                }
            }
        }
        public double BRPOSItemProductDiscount
        {
            get { return _bRPOSItemProductDiscount; }
            set
            {
                if (value != this._bRPOSItemProductDiscount)
                {
                    _bRPOSItemProductDiscount = value;
                    NotifyChanged("BRPOSItemProductDiscount");
                }
            }
        }
        public double BRPOSItemProductTaxPercent
        {
            get { return _bRPOSItemProductTaxPercent; }
            set
            {
                if (value != this._bRPOSItemProductTaxPercent)
                {
                    _bRPOSItemProductTaxPercent = value;
                    NotifyChanged("BRPOSItemProductTaxPercent");
                }
            }
        }
        public double BRPOSItemProductQtyOld
        {
            get { return _bRPOSItemProductQtyOld; }
            set
            {
                if (value != this._bRPOSItemProductQtyOld)
                {
                    _bRPOSItemProductQtyOld = value;
                    NotifyChanged("BRPOSItemProductQtyOld");
                }
            }
        }
        public double BRPOSItemProductQty
        {
            get { return _bRPOSItemProductQty; }
            set
            {
                if (value != this._bRPOSItemProductQty)
                {
                    _bRPOSItemProductQty = value;
                    NotifyChanged("BRPOSItemProductQty");
                }
            }
        }
        public double BRPOSItemProductBasicQty
        {
            get { return _bRPOSItemProductBasicQty; }
            set
            {
                if (value != this._bRPOSItemProductBasicQty)
                {
                    _bRPOSItemProductBasicQty = value;
                    NotifyChanged("BRPOSItemProductBasicQty");
                }
            }
        }
        public double BRPOSItemProductPakagingQty
        {
            get { return _bRPOSItemProductPakagingQty; }
            set
            {
                if (value != this._bRPOSItemProductPakagingQty)
                {
                    _bRPOSItemProductPakagingQty = value;
                    NotifyChanged("BRPOSItemProductPakagingQty");
                }
            }
        }
        public double BRPOSItemQty1
        {
            get { return _bRPOSItemQty1; }
            set
            {
                if (value != this._bRPOSItemQty1)
                {
                    _bRPOSItemQty1 = value;
                    NotifyChanged("BRPOSItemQty1");
                }
            }
        }
        public double BRPOSItemQty2
        {
            get { return _bRPOSItemQty2; }
            set
            {
                if (value != this._bRPOSItemQty2)
                {
                    _bRPOSItemQty2 = value;
                    NotifyChanged("BRPOSItemQty2");
                }
            }
        }
        public double BRPOSItemQty3
        {
            get { return _bRPOSItemQty3; }
            set
            {
                if (value != this._bRPOSItemQty3)
                {
                    _bRPOSItemQty3 = value;
                    NotifyChanged("BRPOSItemQty3");
                }
            }
        }
        public double BRPOSItemQty4
        {
            get { return _bRPOSItemQty4; }
            set
            {
                if (value != this._bRPOSItemQty4)
                {
                    _bRPOSItemQty4 = value;
                    NotifyChanged("BRPOSItemQty4");
                }
            }
        }
        public double BRPOSItemQty5
        {
            get { return _bRPOSItemQty5; }
            set
            {
                if (value != this._bRPOSItemQty5)
                {
                    _bRPOSItemQty5 = value;
                    NotifyChanged("BRPOSItemQty5");
                }
            }
        }
        public double BRPOSItemQty6
        {
            get { return _bRPOSItemQty6; }
            set
            {
                if (value != this._bRPOSItemQty6)
                {
                    _bRPOSItemQty6 = value;
                    NotifyChanged("BRPOSItemQty6");
                }
            }
        }
        public String BRPOSItemComment
        {
            get { return _bRPOSItemComment; }
            set
            {
                if (value != this._bRPOSItemComment)
                {
                    _bRPOSItemComment = value;
                    NotifyChanged("BRPOSItemComment");
                }
            }
        }
        public double BRPOSItemUnitVolumn
        {
            get { return _bRPOSItemUnitVolumn; }
            set
            {
                if (value != this._bRPOSItemUnitVolumn)
                {
                    _bRPOSItemUnitVolumn = value;
                    NotifyChanged("BRPOSItemUnitVolumn");
                }
            }
        }
        public double BRPOSItemUnitWeight
        {
            get { return _bRPOSItemUnitWeight; }
            set
            {
                if (value != this._bRPOSItemUnitWeight)
                {
                    _bRPOSItemUnitWeight = value;
                    NotifyChanged("BRPOSItemUnitWeight");
                }
            }
        }
        public double BRPOSItemPrice
        {
            get { return _bRPOSItemPrice; }
            set
            {
                if (value != this._bRPOSItemPrice)
                {
                    _bRPOSItemPrice = value;
                    NotifyChanged("BRPOSItemPrice");
                }
            }
        }
        public double BRPOSItemInternalPrice
        {
            get { return _bRPOSItemInternalPrice; }
            set
            {
                if (value != this._bRPOSItemInternalPrice)
                {
                    _bRPOSItemInternalPrice = value;
                    NotifyChanged("BRPOSItemInternalPrice");
                }
            }
        }
        public double BRPOSItemTaxAmount
        {
            get { return _bRPOSItemTaxAmount; }
            set
            {
                if (value != this._bRPOSItemTaxAmount)
                {
                    _bRPOSItemTaxAmount = value;
                    NotifyChanged("BRPOSItemTaxAmount");
                }
            }
        }
        public double BRPOSItemDiscountAmount
        {
            get { return _bRPOSItemDiscountAmount; }
            set
            {
                if (value != this._bRPOSItemDiscountAmount)
                {
                    _bRPOSItemDiscountAmount = value;
                    NotifyChanged("BRPOSItemDiscountAmount");
                }
            }
        }
        public double BRPOSItemNetAmount
        {
            get { return _bRPOSItemNetAmount; }
            set
            {
                if (value != this._bRPOSItemNetAmount)
                {
                    _bRPOSItemNetAmount = value;
                    NotifyChanged("BRPOSItemNetAmount");
                }
            }
        }
        public double BRPOSItemTotalAmount
        {
            get { return _bRPOSItemTotalAmount; }
            set
            {
                if (value != this._bRPOSItemTotalAmount)
                {
                    _bRPOSItemTotalAmount = value;
                    NotifyChanged("BRPOSItemTotalAmount");
                }
            }
        }
        public double BRPOSItemTotalCost
        {
            get { return _bRPOSItemTotalCost; }
            set
            {
                if (value != this._bRPOSItemTotalCost)
                {
                    _bRPOSItemTotalCost = value;
                    NotifyChanged("BRPOSItemTotalCost");
                }
            }
        }

        //Extra properties
        public byte[] BRPOSItemProductPicture
        {
            get
            {
                return _bRPOSItemProductPicture;
            }
            set
            {
                _bRPOSItemProductPicture = value;
            }
        }
        #endregion
    }
}